package com.ruoyi.merchant.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 商家银行卡对象 merchant_bank_cards
 * 
 * @author ruoyi
 * @date 2025-10-23
 */
public class MerchantBankCards extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 银行卡ID */
    @Excel(name = "银行卡ID")
    private String cardId;

    /** 商家ID */
    @Excel(name = "商家ID")
    private String merchantId;

    /** 用户ID */
    @Excel(name = "用户ID")
    private String userId;

    /** 银行名称 */
    @Excel(name = "银行名称")
    private String bankName;

    /** 银行编码 */
    @Excel(name = "银行编码")
    private String bankCode;

    /** 开户支行名称 */
    @Excel(name = "开户支行名称")
    private String branchName;

    /** 银行卡号 */
    @Excel(name = "银行卡号")
    private String cardNumber;

    /** 持卡人姓名 */
    @Excel(name = "持卡人姓名")
    private String cardHolderName;

    /** 持卡人身份证号 */
    @Excel(name = "持卡人身份证号")
    private String cardHolderIdcard;

    /** 持卡人预留手机号 */
    @Excel(name = "持卡人预留手机号")
    private String cardHolderPhone;

    /** 卡片类型 */
    @Excel(name = "卡片类型")
    private Long cardType;

    /** 是否默认卡 */
    @Excel(name = "是否默认卡")
    private Long isDefault;

    /** 是否已验证 */
    @Excel(name = "是否已验证")
    private Long isVerified;

    /** 验证时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "验证时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date verifiedAt;

    /** 状态 */
    @Excel(name = "状态")
    private Long status;

    /** 最后使用时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后使用时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastUsedAt;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedAt;

    /** 删除时间（软删除） */
    @Excel(name = "删除时间", readConverterExp = "软=删除")
    private Date deletedAt;

    public void setCardId(String cardId) 
    {
        this.cardId = cardId;
    }

    public String getCardId() 
    {
        return cardId;
    }

    public void setMerchantId(String merchantId) 
    {
        this.merchantId = merchantId;
    }

    public String getMerchantId() 
    {
        return merchantId;
    }

    public void setUserId(String userId) 
    {
        this.userId = userId;
    }

    public String getUserId() 
    {
        return userId;
    }

    public void setBankName(String bankName) 
    {
        this.bankName = bankName;
    }

    public String getBankName() 
    {
        return bankName;
    }

    public void setBankCode(String bankCode) 
    {
        this.bankCode = bankCode;
    }

    public String getBankCode() 
    {
        return bankCode;
    }

    public void setBranchName(String branchName) 
    {
        this.branchName = branchName;
    }

    public String getBranchName() 
    {
        return branchName;
    }

    public void setCardNumber(String cardNumber) 
    {
        this.cardNumber = cardNumber;
    }

    public String getCardNumber() 
    {
        return cardNumber;
    }

    public void setCardHolderName(String cardHolderName) 
    {
        this.cardHolderName = cardHolderName;
    }

    public String getCardHolderName() 
    {
        return cardHolderName;
    }

    public void setCardHolderIdcard(String cardHolderIdcard) 
    {
        this.cardHolderIdcard = cardHolderIdcard;
    }

    public String getCardHolderIdcard() 
    {
        return cardHolderIdcard;
    }

    public void setCardHolderPhone(String cardHolderPhone) 
    {
        this.cardHolderPhone = cardHolderPhone;
    }

    public String getCardHolderPhone() 
    {
        return cardHolderPhone;
    }

    public void setCardType(Long cardType) 
    {
        this.cardType = cardType;
    }

    public Long getCardType() 
    {
        return cardType;
    }

    public void setIsDefault(Long isDefault) 
    {
        this.isDefault = isDefault;
    }

    public Long getIsDefault() 
    {
        return isDefault;
    }

    public void setIsVerified(Long isVerified) 
    {
        this.isVerified = isVerified;
    }

    public Long getIsVerified() 
    {
        return isVerified;
    }

    public void setVerifiedAt(Date verifiedAt) 
    {
        this.verifiedAt = verifiedAt;
    }

    public Date getVerifiedAt() 
    {
        return verifiedAt;
    }

    public void setStatus(Long status) 
    {
        this.status = status;
    }

    public Long getStatus() 
    {
        return status;
    }

    public void setLastUsedAt(Date lastUsedAt) 
    {
        this.lastUsedAt = lastUsedAt;
    }

    public Date getLastUsedAt() 
    {
        return lastUsedAt;
    }

    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }

    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }

    public void setDeletedAt(Date deletedAt) 
    {
        this.deletedAt = deletedAt;
    }

    public Date getDeletedAt() 
    {
        return deletedAt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("cardId", getCardId())
            .append("merchantId", getMerchantId())
            .append("userId", getUserId())
            .append("bankName", getBankName())
            .append("bankCode", getBankCode())
            .append("branchName", getBranchName())
            .append("cardNumber", getCardNumber())
            .append("cardHolderName", getCardHolderName())
            .append("cardHolderIdcard", getCardHolderIdcard())
            .append("cardHolderPhone", getCardHolderPhone())
            .append("cardType", getCardType())
            .append("isDefault", getIsDefault())
            .append("isVerified", getIsVerified())
            .append("verifiedAt", getVerifiedAt())
            .append("status", getStatus())
            .append("lastUsedAt", getLastUsedAt())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .append("deletedAt", getDeletedAt())
            .toString();
    }
}
